1. Field of the Invention
The present invention relates to cell searching in a wide-band code division multiple access (WCDMA) system, and more specifically, to frame synchronization in a WCDMA system.
2. Description of the Prior Art
Spread spectrum communication systems are becoming increasingly important in cellular networks. In particular, wideband code division multiple access (WCDMA) systems are entering the marketplace, and offer the potential of significantly increased performance and reliability.
To establish a network connection in a WCDMA system, the user equipment (UE) must first perform a cell search procedure. The cell search procedure enables the UE to obtain timing and code synchronization for the downlink channel. Various methods are known in the prior art for performing a cell search procedure. Attention is drawn, for example, to the article “Cell Search in W-CDMA” by Yi-Pin Eric Wang and Tony Ottosson in Vol.18, No.8 (August 2000 edition) of IEEE Journal on Selected Areas in Communications, which is included herein by reference.
A simple overview of cell searching is presented in the following. Please refer to FIG. 1. FIG. 1 is a block diagram of a downlink Common Control Channel (CCH) 10 in a WCDMA system. The CCH 10 is broken up into a series of frames 12. Each frame 12 contains fifteen slots 14. Each slot 14 holds ten symbols, each of 256 chips. Hence, each slot 14 is 2560 chips in length. Please refer to FIG. 2 in conjunction with FIG. 1. FIG. 2 is a block diagram of a slot 14 in the CCH 10. The first symbol 16 in each slot 14 holds a primary synchronization channel (PSCH) 16p and a secondary synchronization channel (SSCH) 16s. The remaining nine symbols 18 follow after the first symbol 16 is the primary common control physical channel (P-CCPCH). The PSCH 16p and SSCH 16s are orthogonal to each other, and hence can be broadcast on top of each other. The PSCH 16p is encoded by way of a primary synchronization code (PSC) that is the same for all base stations, and that does not change. The SSCH 16s consists of repeatedly transmitting a sequence of 15 modulated codes each of length 256 chips. These secondary synchronization codes (SSC) are transmitted in parallel with primary SCH. Each SSC is chosen from a set of 16 different codes of length 256 chips. The sequence of the secondary SCH indicates to which code group the cells downlink scrambling code belongs. Please refer to FIG. 3. FIG. 3 is a block diagram of a common pilot channel (CPICH) 20 broadcast with the CCH 10. The coding used for the CPICH 20 is unique to the broadcasting base station. In a WCDMA system, a base station can use one of 512 different primary scrambling codes for the CPICH 20, which are broken into 64 code groups, each having 8 respective codes. The PSC of the PSCH 16p is common across all base stations, and can thus be used for slot 14 synchronization. Although the SSC of the SSCH 16s changes on a slot 14 by slot 14 basis, the sequence pattern of code change of the SSCH 16s is determined by the code group into which the code used for the CPICH 20 lies. That is, there are 64 code sequence patterns for the SSCH 16s to follow, each of which corresponds to a particular code group associated with the code used for the CPICH 20. By correlating the received CCH signal 10 with all possible SSCH 16s code sequences and identifying the maximum correlation value, it is possible to learn the code group of the CPICH 20, and to obtain frame 12 synchronization. This is due to the fact that the SSCH 16s changes according to a predefined sequence, the starting sequence of which is known and which is sent at the beginning of every frame 12, thus enabling frame synchronization. Once the code group of the CPICH 20 is learned, it is possible to obtain the primary scrambling code used by the cell by performing symbol-by-symbol correlation over the CPICH 20 with all eight of the codes in the code group identified for the CPICH 20. Once the primary scrambling code used by the base station has been identified, system and cell specific broadcast channel (BCH) information can be read.
Based upon the above, cell searching is thus typically broken into the three following steps:
Step 1: Slot synchronization.
Utilize the PSCH 16p to perform slot synchronization. This is typically done with a matched filter (or similar device) that is matched to the PSC that is common to all base stations. Typically, output from the matched filter of a frame's worth of slots is non-coherently combined, and a resulting maximum peak is found. The slot boundary is obtained from the maximum peak.
Step 2: Frame synchronization and code group identification.
The slot timing obtained in step 1 is used to correlate the SSCH 16s with all possible SSC code sequences. There are sixteen SSC codes, SSC1 to SSC16, that make up the SSCH code sequence. The SSCs are correlated over a frame's worth of slots and accumulated over all possible frame boundaries to yield a table of values. Each entry in the table has a column/row position that indicates the corresponding scrambling code group and frame slot boundary of the entry. The maximum entry in the table is chosen as the candidate for frame boundary and code group determination.
Step 3: Scrambling code identification.
Symbol-by-symbol correlation is performed on the CPICH 20 for all scrambling codes within the code group identified in step 2. The maximum correlation value is selected as the primary scrambling code of the base station. This maximum correlation value is acceptable only if it exceeds a threshold value.
Please refer to FIG. 4. FIG. 4 is a simple block diagram that illustrates cell synchronization for a prior art UE 30. Of course, the UE 30 will contain many more components than those shown in FIG. 4, which is restricted to the present discussion. The UE 30 includes a transceiver 39 and a synchronization stage 38. The transceiver 39 receives broadcasts from a base station (not shown) and passes broadcast data to the synchronization stage 38 in a manner familiar to those in the art of wireless devices. The synchronization stage 38 includes a stage 1 31, a stage 2 32 and a stage 3 33. The stage 1 31 performs the slot synchronization of step 1 discussed above. Results from stage 1 31 are passed to stage 2 32, which performs the frame 12 synchronization and code group identification of step 2. Results from stage 2 32 are then passed on to stage 3 33, which performs the scrambling code identification of step 3.
Stage 1 31 includes a peak profiler 34. The peak profiler 34 contains the PSC 35 that is common to all base stations, and generates peak profile data 36 that is obtained by matching the PSC 35 against the PSCH 16p received from the transceiver 39, and which is non-coherently combined over a frame 12 of slots 14. The profile data 36 holds data for a predetermined number of chips, and as the PSCH 16p repeats with every slot 14, it is common to hold enough data to cover an entire slot 14, i.e., 2560 chips. The chip in the profile data 36 having the highest peak profile is assumed to mark the PSCH 16p, and is thus used as the slot boundary offset 37. This is illustrated in FIG. 5, which is an example graph of peak profile data 36 (not to scale). Stage 1 31 notes that in the profile data 36 a maximum valued peak occurs at chip number 1658. The slot boundary offset 37 would thus hold a value indicative of the peak path position at chip 1658. The slot boundary offset 37 is forwarded to stage 2 32 as the slot 14 synchronization point. Utilizing the slot 14 position marked by the slot boundary offset 37, stage 2 32 performs step 2 outlined above to generate a code group value 32g and a slot number 32s. 
The stage 2 32 has a correlation unit 32c that generates a correlation table 32t based upon the slot boundary offset 37 and the correlation results of the SSCH 16s with the SSCs. The correlation unit 32c contains 16 SSC correlators. Assumeα0˜α15 are the outputs of 16 SSCH correlators (slot rate). The lower table c in FIG. 6 is the allocation of SSCs for the secondary SCH, which is used for table look-up. The right table w is used for recording the accumulated results over 15 slots. The decision of frame boundary and code group can be described clearly with the following steps:
for slot=0:14
for group=0:63
for shift=0:14
w(group, shift)+=α
next shift
next group
next slot
The maximum value corresponds to a code group and a slot number. The corresponding slot number 32s is the difference in number of slots from the current slot boundary, i.e. we get the frame boundary. The corresponding code group 32g is the group number of the scrambling code used in the current cell.
The stage 3 33 also includes a correlation unit 33c, which correlates the CPICH 20 with all possible primary scrambling codes contained within the code group 32g. The correlation results 33r are respectively obtained in this manner for the primary scrambling codes. The primary scrambling code having the largest correlation result is chosen as the primary scrambling code 33p, but only if the corresponding correlation result exceeds a threshold value 33x. For example, if each code group contains eight primary scrambling codes S0 to S7, the primary correlation results 33r would be: C0, C1, C2, C3, C4, C5, C6, C7, which are respectively the primary correlation results of the eight primary scrambling codes S0 through S7 in the code group indicated by the code group number 32g. If C6 holds the highest primary correlation value, then the stage 3 33 would place the value of “6” as the primary scrambling code number 33p, assuming that C6 also exceeded the threshold value 33x. 
Conventionally, in stage 2 32 an estimated PSCH phase is referenced by the correlation unit 32c when performing coherent combination to generate the correlation table 32t. That is, the phase correction applied to the SSCH 16s signal is based on the phase error of the corresponding PSCH 16p signal because the SSCH is transmitted in parallel with the PSCH and the PSCH is the same in every slot 14. This is why we can use the phase reference estimated from the PSCH. While in high signal to noise ratio (SNR) situations this is adequate, when the SNR is low, the correlation unit 32c suffers from performance degradation. Thus, referencing the PSCH phase without considering noise can lead to slower frame synchronization and corresponding slower cell searching.